package com.chenyongjing.design.pattern.singleton.register;

import java.lang.reflect.Constructor;

/**
 * 从官方JDK底层不能使用反射创建枚举类
 * 线程很不可破坏，类申明的时候已经创建好了，Enum,valueOf,通过常量字典，存储再Map中
 * 存在内存浪费
 */
public class EnumSingletonTest {
    public static void main(String[] args) {
        EnumSingleton instnce = EnumSingleton.getInstance();
        instnce.setData(new Object());

        Class clazz = EnumSingleton.class;
        try {
            // 没有无参的构造方法
            Constructor c = clazz.getDeclaredConstructor(String.class,int.class);
            c.setAccessible(true);
            Object obj = c.newInstance();
            System.out.println(obj);
        } catch (Exception e) {
           e.printStackTrace();
        }

    }
}
